package com.xiao.wiki.tool.core.date;


import com.xiao.wiki.tool.core.util.ObjectUtil;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * 包装java.util.Date
 *
 * @author xiaoleilu
 */
public class DateTime extends Date {

    /**
     * 时区
     */
    private TimeZone timeZone;


    /**
     * 当前时间(构造方法)
     *
     */
    public DateTime() {
//        //  得到主机默认的时区
//        System.out.println("TimeZone.getDefault():"+TimeZone.getDefault());
        TimeZone aDefault = TimeZone.getDefault();


        System.out.println("这是时间类的构造方法");
    }

    /**
     * 当前时间
     *
     * @param timeZone 时区
     */
    public DateTime(TimeZone timeZone) {
        this.timeZone = ObjectUtil.defaultIfNull(timeZone, TimeZone.getDefault());
    }

    /**
     * 自动调用
     * @return
     */
    @Override
    public String toString(){
        // 自动调用 toString(TimeZone timeZone)方法
        return toString(this.timeZone);
    }

    /**
     *
     * @param timeZone
     * @return
     */
    public String toString(TimeZone timeZone) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
            simpleDateFormat.setTimeZone(timeZone);
        String format = simpleDateFormat.format(this);
        return format;
    }

}
